package com.ruoyi.whole.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.utils.vo.PoCommon;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 车辆采购对象 dms_dealer_whole_purchase
 * 
 * @author liuchuanfa
 * @date 2024-03-04
 */
public class DmsDealerWholePurchase extends PoCommon
{
    private static final long serialVersionUID = 1L;

    /** 采购订单id */
    @Excel(name = "采购订单id")
    private Long purchaseId;

    /** 经销商id（部门id） */
    @Excel(name = "经销商id")
    private Long deptId;

    /** 公司id（部门id） */
    @Excel(name = "公司id")
    private Long companyId;

    /** 采购的车的数量 */
    @Excel(name = "采购的车的数量")
    private Integer wholePurchaseNumber;

    /** 0已发起采购，等待审核 0已发起采购，等待审核 1待销售审核 2待财务审核 3待配车 4待扣款 5待发货 6待收货 7已签收  8审核失败               */
    @Excel(name = "采购状态" ,readConverterExp = "0=已发起采购，等待审核 1=待销售审核 2=待财务审核 3=待配车 4=待扣款 5=待发货 6=待收货 7=已签收  8=审核失败")
    private Integer purchaseStatus;

    /** 采购的总价 */
    @Excel(name = "采购的总价")
    private Double purchasePrice;

    /** 支付方式（0微信支付、1支付宝支付、2现金支付、3银行卡支付） */
    @Excel(name = "支付方式", readConverterExp = "0=微信支付、1=支付宝支付、2=现金支付、3=银行卡支付")
    private Integer paymentMethod;

    /** 采购备注 */
    @Excel(name = "采购备注")
    private String purchaseRemark;

    /** 审核人id */
    @Excel(name = "审核人id")
    @TableField(value = "auditor_id", fill = FieldFill.UPDATE)
    private Long auditorId;

    /** 审核人名称 */
    @Excel(name = "审核人名称")
    @TableField(value = "auditor_name", fill = FieldFill.UPDATE)
    private String auditorName;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField(value = "auditor_time", fill = FieldFill.UPDATE)
    private Date auditorTime;

    /** 车辆采购详细信息 */
    private List<DmsDealerWholePurchaseDetail> dmsDealerWholePurchaseDetailList;

    public void setPurchaseId(Long purchaseId) 
    {
        this.purchaseId = purchaseId;
    }

    public Long getPurchaseId() 
    {
        return purchaseId;
    }
    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }
    public void setCompanyId(Long companyId) 
    {
        this.companyId = companyId;
    }

    public Long getCompanyId() 
    {
        return companyId;
    }
    public void setWholePurchaseNumber(Integer wholePurchaseNumber) 
    {
        this.wholePurchaseNumber = wholePurchaseNumber;
    }

    public Integer getWholePurchaseNumber() 
    {
        return wholePurchaseNumber;
    }
    public void setPurchaseStatus(Integer purchaseStatus) 
    {
        this.purchaseStatus = purchaseStatus;
    }

    public Integer getPurchaseStatus() 
    {
        return purchaseStatus;
    }
    public void setPurchasePrice(Double purchasePrice) 
    {
        this.purchasePrice = purchasePrice;
    }

    public Double getPurchasePrice() 
    {
        return purchasePrice;
    }
    public void setPaymentMethod(Integer paymentMethod) 
    {
        this.paymentMethod = paymentMethod;
    }

    public Integer getPaymentMethod() 
    {
        return paymentMethod;
    }
    public void setPurchaseRemark(String purchaseRemark) 
    {
        this.purchaseRemark = purchaseRemark;
    }

    public String getPurchaseRemark() 
    {
        return purchaseRemark;
    }
    public void setAuditorId(Long auditorId) 
    {
        this.auditorId = auditorId;
    }

    public Long getAuditorId() 
    {
        return auditorId;
    }
    public void setAuditorName(String auditorName)
    {
        this.auditorName = auditorName;
    }

    public String getAuditorName()
    {
        return auditorName;
    }
    public void setAuditorTime(Date auditorTime)
    {
        this.auditorTime = auditorTime;
    }

    public Date getAuditorTime()
    {
        return auditorTime;
    }

    public List<DmsDealerWholePurchaseDetail> getDmsDealerWholePurchaseDetailList()
    {
        return dmsDealerWholePurchaseDetailList;
    }

    public void setDmsDealerWholePurchaseDetailList(List<DmsDealerWholePurchaseDetail> dmsDealerWholePurchaseDetailList)
    {
        this.dmsDealerWholePurchaseDetailList = dmsDealerWholePurchaseDetailList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("purchaseId", getPurchaseId())
            .append("deptId", getDeptId())
            .append("companyId", getCompanyId())
            .append("wholePurchaseNumber", getWholePurchaseNumber())
            .append("purchaseStatus", getPurchaseStatus())
            .append("purchasePrice", getPurchasePrice())
            .append("paymentMethod", getPaymentMethod())
            .append("purchaseRemark", getPurchaseRemark())
            .append("auditorId", getAuditorId())
            .append("auditorName", getAuditorName())
            .append("auditorTime", getAuditorTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("createUserName", getCreateUserName())
            .append("updateUserName", getUpdateUserName())
            .append("version", getVersion())
            .append("deleteFlag", getDeleteFlag())
            .append("dmsDealerWholePurchaseDetailList", getDmsDealerWholePurchaseDetailList())
            .toString();
    }
}
